Often when a switch device or network routing device of receives a data packet or frame, it chooses one of several internal links across which to transmit the packet from its ingress port to its intended egress port. Frequently, a technique akin to link aggregation may be used to make that link selection decision. Specifically, often certain flow-identifying fields in the packet are hashed and the hash result is reduced to an interface selection.
Hashes, although often easy to compute, are unable to avoid collisions where a several different inputs may result in identical hash values. These collisions may cause a disproportionate amount of traffic to utilize one of the several available internal links. Frequently this problem is exacerbated when the number of data flows is limited. For example, if a switching device is handling a single very high bandwidth data flow, the hash-based link selection algorithm may frequently direct every packet to the same link. In such an embodiment, if eight links are available within the device, then only 12.5% of the potential switch fabric bandwidth will be utilized by the flow.
A popular alternative to the packet- and hash-based switch fabric interface method is to segment packets into cells and then distribute the cells in a round-robin or other fair scheme among the switch fabric devices. Cross-bar switching methods or embedded sequence numbers may be used to ensure that the cells are reassembled in the right order to reconstitute the original packets.